package com.wuuxiang.polestar.admin.utils;

import java.util.Date;

import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
/**
 * ********************************************************<br>
 * 方法说明：JWT生成与解析 <br>
 * 返回值： String <br>
 * 创建人：刘彦栋  <br>
 * 创建时间：2017年12月4日 下午4:53:37 <br>
 * 修改备注： <br>

 *********************************************************
 */
public class JwtUtils {
	 //超时时间设置
	 public static long exp = 60 * 60 * 24 * 1000;
	 //加密方式
	 static SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS512;
	 //密钥
	 static String secret="MyJwtSecret";
	 
	 //获取授权token
	 public static String createJWT(String name){
		 String token = Jwts.builder()
		                    .setSubject(name)
		                    .setExpiration(new Date(System.currentTimeMillis() + exp))
		                    .signWith(signatureAlgorithm, secret).compact();
		 return "Bearer "+token;
	 }
	 //解析授权token
	 public static String parserJWT(String authToken) {
		 String subject=Jwts.parser()
				            .setSigningKey(secret)
				            .parseClaimsJws(authToken.replace("Bearer ", ""))
				            .getBody()
			                .getSubject();
		 return subject;
	}
	 
	 
	public static void main(String[] args) {
		String aa = JwtUtils.createJWT("admin");
		System.out.println(aa);
		String bb=JwtUtils.parserJWT(aa);
		System.out.println(bb);
	} 
}
